package com.designpattern.singleton;

/**
 * 单例模式
 * lazy loading
 * 懒汉式
 * 虽然达到了按需初始化的目的，但也带来线程不安全(多线程)的问题。
 */
public class Main03 {
    private static Main03 INSTANCE;

    private Main03() {

    }

    //INSTANCE == null会产生线程不安全。
    public static Main03 getInstance() {
        if (INSTANCE == null) {

//            try {
//                Thread.sleep(1000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
            INSTANCE = new Main03();
        }
        return INSTANCE;
    }

    public static void main(String[] args) {
        for (int i=0;i<100;i++)
            new Thread(()->{
                System.out.println(Main03.getInstance().hashCode());
            }).start();
    }
}
